package com.hubao.flutter_weight_parser.protocol;

import java.math.BigDecimal;
import java.util.Optional;

/**
 * 地磅协议接口
 */
public interface WeightProtocol {
    /**
     * 是否是ASC协议
     */
    boolean isAscii();

    /**
     * 地磅协议名称
     */
    String getName();

    /**
     * 数据填充
     *
     * @param data 每字节数据
     */
    void add(int data);

    /**
     * 是否可解析
     */
    boolean isComplete();

    /**
     * 解析重量
     */
    Optional<BigDecimal> parseWeight();

    static final Object[] EMPTY_ARRAY = new Object[]{};
}
